%% -*- mode: erlang -*-
[
 {
   elvis,
   [
    {config,
     [
      #{dirs => ["src", "apps/**/src", "lib-ee/**/src"],
        filter => "*.erl",
        ruleset => erl_files,
        rules => [
            {elvis_style, state_record_and_type, disable},
            {elvis_style, no_common_caveats_call, #{}},
            {elvis_style, no_debug_call, #{ debug_functions => [ {ct, pal}
                                                               , {ct, print}
                                                               ]}},
            {elvis_style, operator_spaces, #{rules => [{right, "|"},
                                                       {left, "|"},
                                                       {right, "||"},
                                                       {left, "||"}]}},
            {elvis_style, dont_repeat_yourself, #{ min_complexity => 20 }},
            {elvis_style, god_modules, #{ignore => [emqx_authentication,
                                                    emqx_resource]}}
           ]
        },
      #{dirs => ["test", "apps/**/test"],
        filter => "*.erl",
        rules => [
           {elvis_text_style, line_length, #{ limit => 100
                                             , skip_comments => false }},
           {elvis_style, dont_repeat_yourself, #{ min_complexity => 100 }}
          ]
        },
      #{dirs => ["."],
        filter => "Makefile",
        ruleset => makefiles
       },
      #{dirs => ["."],
        filter => "rebar.config",
        ruleset => rebar_config
       },
      #{dirs => ["."],
        filter => "elvis.config",
        ruleset => elvis_config
       }
     ]
    }
   ]
 }
].
